System and Method for Communication Routing, Transportation Coordination and Product Creation

ABSTRACT

A system and method for communication routing, transportation coordination and product creation, based on the number of delivery agents and the need for delivery of an order placed through a customer order placement application, the method includes receiving a communication for each of the plurality of delivery agents comprising a delivery agent location, determining a delivery agent arrival time for pickup of the order, and based at least partially on the arrival time, transmitting, by the communication router over the communication network to the manager application, an instruction communication to begin preparation of each of the items at the respective preparation start time for each of the items so that completion of preparation of each of the items in the order substantially coincides with the completion of preparation of each of the other items in the order and coincides with the arrival time of the delivery agent.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a U.S. Non-Provisional Utility PatentApplication, which claims priority to U.S. Provisional PatentApplication Ser. No. 62/364,370, filed Jul. 20, 2016, which applicationis incorporated in its entirety, by reference herein.

TECHNICAL FIELD

This patent application relates to computerized systems and methods forcommunication routing, transportation coordination and product creation.

BACKGROUND

Current food delivery models rely on an imperfect method for deliveringfood to customers. The current models feature the same or similarunderlying process of a customer placing an order for food, the food isthen cooked/prepared, and the food is then delivered to the customer.The problem with such models is that the communication and coordinationbetween ordering, cooking/preparation, and delivery, is inefficient.This leads to a variety of problems including delivery of poor qualityfood (e.g. food being cold upon delivery), food being delayed, or poorprofits for business offering food delivery services.

Many delivery models attempt to tackle these problems by adoptingvarious food ordering, preparation, and delivery methods. For example,one approach is the “middleman” approach to food delivery, where abusiness acts as the middleman between a restaurant and customer. Otherdelivery models include overstaffing delivery drivers, so that deliverydrivers are always available on standby; yet other deliver models useprophylactic methods such as incorporating specialized vehicles toprolong the quality of foods so that they maintain their quality duringlong delivery times.

Despite these attempts, these models still face problems high operatingcosts, arising from having to pay for large fleets of drivers; varyingorder mechanisms; and attrition on the part of the workforce (e.g. theturnover for delivery drivers in the food delivery industry leads tohigher costs for business because companies need to keep training newworkforce members).

Therefore, there is a need for an improved computerized systems andmethods for communication routing, transportation coordination andproduct creation.

SUMMARY

The present application discloses a plurality of embodiments directed tocomputerized systems and methods for communication routing,transportation coordination and product creation.

In one embodiment, a method is disclosed for transmitting an instructioncommunication to a manager application from a server including acommunication router coupled to a communication network, for preparationand delivery of an order placed through a customer order placementapplication in communication with the server, the instructioncommunication being based upon information received from a deliveryagent application associated with each of a plurality of deliveryagents, the method comprising the steps of: receiving, at the server, anorder communication from the customer order placement application, theorder communication comprising an order for one or more items placed bya customer for delivery to a delivery destination; determining, by theserver, an estimated preparation time for each of the one or more items;receiving, at the server, an availability communication from thedelivery agent application for a first one of the plurality of deliveryagents, the availability communication comprising a delivery agentstatus; receiving, at the server, a location communication from at leastone of: a device associated with the first one of the plurality ofdelivery agents or the delivery agent application for the first one ofthe plurality of delivery agents, the location communication comprisinga location of the first one of the plurality of delivery agents;determining, at the server, an estimated arrival time of the first oneof the plurality of delivery agents at a pickup location based at leastin part on the location of the first one of the plurality of deliveryagents; determining, at the server, a preparation start time for each ofthe at least one items in the order such that preparation of the each ofthe at least one items is completed substantially simultaneously to eachof the other at least one items, and substantially simultaneously withthe estimated arrival time of the first one of the plurality of deliveryagents at the pickup location; and transmitting, by the communicationrouter, an instruction communication over the communication network tothe manager application to begin preparation of each of the at least oneitems at the preparation start time for each of the at least one item.

In another embodiment, the order comprises a food order, the one or moreitems comprises one or more food items, and the manager applicationcomprises a kitchen manager application.

In another embodiment, the method further comprises the step ofreceiving from the manager application, at the server, a confirmationcommunication when each of the at least one items of the order has beenprepared.

In another embodiment, the method further comprises the step ofassigning, by the server, the order to the first one of the plurality ofdelivery agents.

In another embodiment, wherein the preparation start time for each ofthe one or more items equals the estimated arrival time of the first oneof the plurality of delivery agents at the pickup location, minus apredetermined preparation time for each of the one or more items.

In another embodiment, a method is disclosed for transmitting aninstruction communication to a manager application from a serverincluding a communication router coupled to a communication network, forpreparation and delivery of an order placed through a customer orderplacement application in communication with the server, the serverfurther operative to communicate over the communications network with aplurality of delivery agent applications associated with each of aplurality of delivery agents, the method comprising the steps of:receiving, at the server, an order communication from the customer orderplacement application, the order communication comprising an order forone or more items placed by a customer for delivery to a deliverydestination; communicating, by the server, with at least one of: adevice associated with a delivery agent or one of the plurality ofdelivery agent applications associated with the delivery agent, anddetermining based on the communication the arrival time of the deliveryagent at a pickup location; determining, at the server and based atleast partially on the arrival time, a preparation start time for eachof the one or more items; and transmitting, by the communication routerover the communication network to the manager application, aninstruction communication to begin preparation of each of the one ormore items at the respective preparation start time for each of the oneor more items so that completion of preparation of each of the one ormore items in the order substantially coincides with the completion ofpreparation of each of the other items in the order and coincides withthe arrival time of the delivery agent.

In another embodiment, the order comprises a food order, the one or moreitems comprises one or more food items, and the manager applicationcomprises a kitchen manager application.

In another embodiment, the method further comprises retrieving, by theserver, data from a database regarding an estimated preparation time foreach of the one or more items, wherein step (c) further comprisesdetermining, at the server and based at least partially on the arrivaltime and the estimated preparation time, a preparation start time foreach of the one or more items.

In another embodiment, the method further comprises receiving, at theserver, an availability communication from the delivery agentapplication associated with the delivery agent, the availabilitycommunication comprising a delivery agent status.

In another embodiment, the method further comprises receiving from themanager application, at the server, a confirmation communication wheneach of the at least one items of the order has been prepared.

In another embodiment, the method further comprises storing data in adatabase regarding a measured preparation time for each of the one ormore items based upon the confirmation communication.

In another embodiment, the method further comprises using said data todetermine the estimated preparation time for each of the one or moreitems.

In another embodiment, the method further comprises assigning, by theserver, the order to the delivery agent.

In another embodiment, the preparation start time for each of the one ormore items equals the arrival time of the delivery agent at the pickuplocation, minus a predetermined preparation time for each of the one ormore items.

In another embodiment, the method further comprises receivinggeolocation information from the delivery agent application.

In another embodiment, the method further comprises determining routeinformation obtained from a database containing at least one routeinformation.

In another embodiment, the method further comprises determining routeinformation obtained from a database containing at least one routeinformation and at least one traffic congestion information.

In another embodiment, a computerized system coupled to a communicationnetwork is disclosed, the system operative for assignment of an order toa delivery agent, the system comprising: a customer order placementapplication; a server for receiving an order communication from thecustomer order placement application over the communication network, theorder communication comprising an order for one or more items placed bya customer for delivery to a delivery destination; a database of iteminformation comprising the time for completion of each of the one ormore items; an order queue for establishing a preparation sequence foreach of the one or more items in each order based at least upon the timefor completion of each of the one or more items; and a plurality ofdelivery agent applications operative to send a plurality ofcommunications over the communication network to the server, whereineach of the plurality of communications from the plurality of deliveryagent applications comprises information regarding the location of therespective one of the plurality of delivery agent applications; whereinthe server identifies a delivery agent to pick up the order and anassociated arrival time based at least in part on information in theplurality of communications and the order queue; the server determines,based at least in part on the arrival time, a preparation start time foreach of the one or more items; and wherein the server is operative totransmit, by the communication router over the communication network tothe manager application, an instruction communication to beginpreparation of each of the one or more items at the respectivepreparation start time for each of the one or more items so thatcompletion of preparation of each of the one or more items in the ordersubstantially coincides with the completion of preparation of each ofthe other items in the order and coincides with the arrival time of thedelivery agent.

In another embodiment, a first delivery agent application suitable tofulfill the delivery of the order is selected from the plurality ofdelivery agent applications, based at least in part on a pre-determinedcriterion.

In another embodiment, the pre-determined criterion comprises aproximity of one of a device associated with the delivery agent or thefirst delivery agent application to a location where the order iscompleted.

In another embodiment, the pre-determined criterion comprises a lengthof time to travel a location of the first delivery agent application toa location where the order is completed.

In another embodiment, the pre-determined criterion comprises atransportation mode associated with the first delivery agentapplication.

In another embodiment, the server is operative to send an activationcommunication to the first delivery agent application and, if the firstdelivery agent application does not communicate an acceptance indicationto the server, a second delivery agent application suitable to fulfillthe delivery of the order is selected from the plurality of deliveryagent applications based at least on the pre-determined criterion.

In another embodiment, the second delivery agent applicationcommunicates an acceptance indication to the server, and the server isoperative to assign the order to the second delivery agent applicationfor delivery to the customer.

In another embodiment, the order comprises a food order, the one or moreitems comprises one or more food items, and the manager applicationcomprises a kitchen manager application.

In another embodiment, the server determines, based at least in part onthe arrival time and the time for completion of each of the one or moreitems, a preparation start time for each of the one or more items.

In another embodiment, each of the plurality of delivery agentapplications is configured to transmit to the server over thecommunication network, an availability communication, the availabilitycommunication comprising a delivery agent status.

In another embodiment, the manager application is configured to transmitto the server over the communication network, a confirmationcommunication when each of the at least one items of the order has beenprepared.

In another embodiment, the server is configured to store data in adatabase regarding a measured preparation time for each of the one ormore items based upon the confirmation communication.

In another embodiment, the server is configured to use said data todetermine the estimated preparation time for each of the one or moreitems.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic system diagram of a system for communicationrouting, transportation coordination and product creation in accordancewith an embodiment;

FIG. 2A is a schematic flowchart of a method for coordinating foodpreparation and delivery according to an embodiment;

FIG. 2B is a schematic timeline flowchart of a method for coordinatingfood preparation and delivery according to an embodiment;

FIG. 3 is a schematic timeline flowchart of a method for coordinatingfood preparation and delivery according to an embodiment; and

FIG. 4 is a schematic flowchart of a method for coordinating foodpreparation and delivery according to an embodiment.

DETAILED DESCRIPTION

For the purposes of promoting an understanding of the principles of thepresent disclosure, reference will now be made to the embodimentsillustrated in the drawings, and specific language will be used todescribe the same. It will nevertheless be understood that no limitationof the scope of this disclosure is thereby intended.

Although many of the illustrated embodiments are described inconjunction with the specific domains of food creation andtransportation, the present embodiments will find application in anyfield where products are ordered, created and/or transported.

This detailed description is presented in terms of programs, datastructures or procedures executed on a computer or network of computers.The software programs implemented by the system 100 may be written inany programming language—interpreted, compiled, or otherwise. Theselanguages may include, but are not limited to, Xcode, iOS, cocoa, cocoatouch, MacRuby, PHP, ASP.net, HTML, HTML5, Ruby, Perl, Ember.js, Java,Python, C++, C#, JavaScript, and/or the Go programming language. Itshould be appreciated, of course, that one of skill in the art willappreciate that other languages may be used instead, or in combinationwith the foregoing and that web and/or mobile application frameworks mayalso be used, such as, for example, Ember.js, Ruby on Rails, Node.js,Zend, Symfony, Revel, Django, Struts, Spring, Play, Jo, TwitterBootstrap and others. It should further be appreciated that the system100s and methods disclosed herein may be embodied insoftware-as-a-service available over a computer network, such as, forexample, the Internet. Further, the present disclosure may enable webservices, application programming interfaces and/or service-orientedarchitecture through one or more application programming interfaces orotherwise.

FIG. 1 shows a system for communication routing, transportationcoordination and product creation as used in the field of coordinatingfood preparation and delivery, generally indicated at 100. In at leastone embodiment of the present disclosure, the system 100 includes acustomer order placement application 102, a communication network 104, aserver 106, an order queue 106A, a kitchen manager application 108A, anda delivery agent application 110A.

In at least one embodiment of the present disclosure, the system 100includes the customer order placement application 102 accessed via acustomer device. The customer device includes one or more computers,smartphones, tablets, wearable technology, computing devices, or systemsof a type well known in the art, such as a mainframe computer,workstation, personal computer, laptop computer, hand-held computer,cellular telephone, MP3 player, personal digital assistant, or any otherdevice having computational capability. The customer device includessuch software, hardware, and componentry as would occur to one of skillin the art, such as, for example, one or more microprocessors, memorysystems, input/output devices, device controllers, location systems, andthe like. The customer device also comprises one or more data entrymeans (not shown in FIG. 1) operable by users of the customer device fordata entry, such as, for example, voice or audio control, a pointingdevice (such as a mouse), keyboard, touchscreen, microphone, voicerecognition, and/or other data entry means known in the art. Thecustomer device also comprises a display means which may comprisevarious types of known displays such as liquid crystal diode displays,light emitting diode display, and the like upon which information may bedisplayed in a manner perceptible to the customers. It will beappreciated that customer device may further comprise such software,hardware, and componentry as would occur to one of skill in the art, tooperably perform the functions allocated to the customer order placementapplication 102 in accordance with the present disclosure. It will befurther appreciated that the customer device and/or customer orderplacement application 102 may be configured to route communications(i.e., transmit information) to and generally interact with a webservice and/or application programming interface infrastructure housedon server 106 over communication network 104. The customer device and/orcustomer order placement application 102 may include a web browser,mobile application, socket or tunnel, or other network connectedsoftware such that communication with the web services infrastructure onserver 106 is possible over the communication network 104.

In at least one embodiment of the present disclosure, the system 100includes server 106. Server 106 comprises one or more server computers,storage systems, computing devices, or systems of a type known in theart. Server 106 further comprises such software, hardware, andcomponentry as would occur to one of skill in the art, such as, forexample, microprocessors, memory systems, input/output devices, devicecontrollers, display systems, and the like. Server 106 may comprise oneof many well-known servers and/or platforms, such as, for example, IBM'sAS/400 Server, RedHat Linux, IBM's AIX UNIX Server, MICROSOFT's WINDOWSNT Server, AWS Cloud services, Rackspace cloud services, anyinfrastructure as a service provider, web services infrastructure, orany platform as a service provider. It will be appreciated that server106 is configured to store information generated by the system 100and/or retrieved from one or more information sources, to operablyperform the functions allocated to the server 106 in accordance with thepresent disclosure.

In FIG. 1, server 106 is shown and referred to herein as a singleserver. However, server 106 may comprise a plurality of servers, virtualinfrastructure, or other computing devices or systems interconnected byhardware and software systems know in the art which collectively areoperable to perform the functions allocated to server 106 in accordancewith the present disclosure. For example, server 106 may includesoftware systems/components such as a communication router (notseparately illustrated) and an order queue 106A.

In at least one embodiment of the present disclosure, the system 100includes an order queue 106A. The order queue 106A is configured tostore information generated by the system 100 and/or retrieved from oneor more information sources, and to operably perform the functionsallocated to the order queue 106A in accordance with the presentdisclosure. In at least one embodiment of the present disclosure, orderqueue 106A can be “associated with” server 106 where order queue 106Aresides on server 106. Order queue 106A can also be “associated with”server 106 where order queue 106A resides on a server or computingdevice remote from server 106, provided that the remote server orcomputing device is capable of bi-directional communication routing(i.e., data transfer) with server 106, such as, for example, in AmazonAWS, Rackspace, or other virtual infrastructure, or any businessnetwork. In at least one embodiment of the present disclosure, theremote server or computing device upon which order queue 106A resides iselectronically connected to server 106 such that the remote server orcomputing device is capable of continuous bi-directional communicationrouting (data transfer) with server 106.

For purposes of clarity, order queue 106A is shown in FIG. 1, andreferred to herein as a single queue. It will be appreciated by those ofordinary skill in the art that order queue 106A may comprise a pluralityof queues connected by software systems of a type well known in the art,which collectively are operable to perform the functions delegated toorder queue 106A according to the present disclosure. Order queue 106Amay also be part of distributed data architecture, such as, for example,a Hadoop architecture, for big data services. Order queue 106A maycomprise relational database architecture, noSQL, OLAP, or otherdatabase architecture of a type known in the database art. Order queue106A may comprise one of many well-known database management systems,such as, for example, MICROSOFT's SQL Server, MICROSOFT's ACCESS,MongoDB, JCR, Redis. Hadoop, or IBM's DB2 database management systems,or the database management systems available from ORACLE or SYBASE.Order queue 106A retrievably stores information that is communicated toorder queue 106A from customer device 102 or server 106.

In at least one embodiment of the present disclosure, the system 100includes or operates in conjunction with a kitchen manager application108A in a kitchen facility (not shown). The kitchen facility serves as acentral distribution center, and includes a plurality of cooking andfood processing and preparation stations (not shown) sometimes alsoreferred to herein as food stations. It is within the scope of thisdisclosure that the kitchen facility may include a single food station.Each of the plurality of food stations include a food station managerapplication, each of which is intended to coordinate the preparation oforder items at the particular food station, providing instructionsregarding which items from which order to prepare and when. In oneembodiment, the instructions may be issued by order queue 106A and sentusing a communication router of system 100 to the applicable foodstation manager application(s). In some embodiments, the instructionsmay be issued by order queue 106A and sent using a communication routerof system 100 to the kitchen manager application 108A, which then sendsappropriate instructions to the applicable food station managerapplication(s). The food station manager application may further beconfigured to provide information regarding when to wait to perform aparticular act (such as dropping French fries into the fryer), and mayfurther be configured to receive inputs from an operator such asreporting when a task is complete, reporting problems with equipment,low food supply, or delays. It is within the scope of the presentdisclosure for the food station manager application(s) to be part of thesame subsystem as the kitchen manager application 108A, or to beseparate subsystems in communication with the kitchen managerapplication 108A, as would be understood by one of ordinary skill in theart.

By way of example, food stations may include a plurality of equipmentand perform functions of food preparation activities such as a saladbar, pizza, sandwich, broiler, flattop or griddle, grille, pasta, andsauté, to name a few non-limiting examples. Each of the food stationsmay be manned by a workforce member, or may be automated to perform oneor more of the functions delegated, assigned, or otherwise allocated tothe kitchen manager application, and the food station managerapplications therein, according to the present disclosure. For clarity,functions may be delegated to more than one food station managerapplication.

In at least one embodiment of the present disclosure, the kitchenfacility further includes an expo station (not shown), an assemblystation (not shown), and a runner station (not shown). Each such stationmay have one or more food station manager applications. The expo stationis configured to provide oversight of the kitchen's and kitchen managerapplication's 108A operations. For example, the expo station might allowfor a centralized location for the management of orders, coordination ofkitchen staff, and the like. The assembly station is configured to allowthe coordination and preparation of food orders. The runner station isconfigured to allow additional resources to help assist in thecoordination of food preparation.

In at least one embodiment of the present disclosure, each of theplurality of food station manager applications and the kitchen managerapplication 108A may comprise computers or terminals for theinstantaneous display of information and for the routing ofcommunications to and from other portions of the system 100. Forexample, the each of the plurality of food station manager applicationsin the kitchen may include one or more data entry means (not shown inFIG. 1) operable by the workforce members of the kitchen, such as, forexample, voice or audio control, a pointing device (such as a mouse),keyboard, touchscreen, microphone, voice recognition, and/or other dataentry means known to one having ordinary skill in the art. Each of theplurality of food stations in the kitchen may also include a displaymeans which may comprise various types of known displays such as liquidcrystal diode displays, light emitting diode display, and the like uponwhich information may be displayed in a manner perceptible to the user.It will be appreciate that the each of the plurality of food stationsand food station manager applications in the kitchen and the kitchenmanager application 108A may be integrated and may further include suchsoftware, hardware, and componentry as would occur to one of skill inthe art, to operably perform the functions allocated to the kitchen andthe kitchen manager application 108A, and the food stations and foodstation manager applications therein, in accordance with the presentdisclosure. It will be further appreciated that the each of theplurality of food station manager applications in the kitchen may beconfigured to route communications (i.e., transmit information) to andgenerally communicate with each other food station manager applicationin the kitchen (optionally, through the kitchen manager application108A), and with a web service and/or application programming interfaceinfrastructure housed on server 106 either directly connected orconnected over communication network 104. It will be appreciated by oneof ordinary skill in the art that one or more additional kitchens (e.g.with kitchen manager application 108B) may be associated with system100, and the each of the plurality of kitchens may be located remotelyfrom each other, and operably configured to perform the functionsallocated to a kitchen, in accordance with the present disclosure.

In at least one embodiment of the present disclosure, the system 100includes at least one delivery agent application 110A associated with adelivery agent. It will be appreciated that a delivery agent application110A may include a plurality of delivery agent applications and theassociated delivery agents connected by software systems of a type wellknown in the art, which collectively are operable to perform thefunctions delegated to the delivery agent application 110A, according tothe present disclosure. It will be further appreciated that the deliveryagent application 110A may also be associated with delivery agents thatare devices such as drones, autonomous vehicles, and the like, to name afew non-limiting examples. The delivery agent associated with deliveryagent application 110A provides transportation services of the fooditems produced within the kitchen in the system 100.

In at least one embodiment of the present disclosure, the delivery agentapplication 110A includes such software, hardware, and componentry aswould occur to one of skill in the art, such as, for example, one ormore microprocessors, memory systems, input/output devices, devicecontrollers, and the like. It will be appreciated that the deliveryagent application 110A is capable of transmitting location information,receiving instructions, transmitting payment information, communicating,or otherwise being operably connected to a web service and/orapplication programming interface infrastructure housed on server 106over communication network 104.

It will be further appreciated that each delivery agent application 110Amay be associated with a plurality of transportation modes and means,such as, for example, a car, a bicycle, an unmanned aerial vehicle, apedestrian, or a customized delivery vehicle (e.g. a refrigerated truck,a heated truck, etc.). The each delivery agent application 110A mayfurther include other characteristics such as payload transportabilities, speed, distance ranges, fuel efficiency, and the like. Itwill be further appreciated that each delivery agent application 110A isattributed with delivery attributes, such as for example, the speed ofthe delivery agent associated with delivery agent application 110A(whether based on historical metrics, transportation mode selected,traffic and other route information, or other considerations), a rankingof the delivery agent (such as by system 100 regarding the availabilityand work habits of the associated delivery agent), the delivery rangeattributed to the delivery agent, the customer satisfaction ratings ofthe delivery agent associated with the delivery agent application 110A,and the like.

In at least one embodiment of the present disclosure, the each deliveryagent application 110A has delivery attributes to help the system 100evaluate and select an appropriate delivery agent for the delivery offood orders. For example, a delivery agent application 110A that isassociated with the driver of a car can generally transport more fooditems to further distances, when compared to a delivery agentapplication 110A that is associated with a pedestrian. Continuing withthis example, if an order comprises ten pizzas, the system 100 mayprefer to select a driver in a car associated with delivery agentapplication 110A. In yet another example, it may be more efficient touse a pedestrian associated with delivery agent application 110A, than adriver in a car, such as, when the delivery location is near thephysical location of kitchen or when vehicular traffic congestionexists. In another example, a refrigerated vehicle can keep cold fooditems (e.g. ice cream) refrigerated, when compared to a bicycle, therebymaking a refrigerated vehicle more appropriate as the means of deliveryselected for orders of ice cream (or other items requiringrefrigeration). It will be appreciated that the system 100 may trackthese delivery attributes for each delivery agent application 110A.

Although only one delivery agent application 110A is shown, it will beappreciated by one having ordinary skill in the art that a plurality ofdelivery agents each associated with delivery agent applications (e.g.delivery agent application 110B) may be available, and the each of theplurality of delivery agent applications may be located remotely fromeach other, and operably configured to perform the functions allocatedto the delivery agent application 110, in accordance with the presentdisclosure.

In at least one embodiment of the present disclosure, the system 100further includes one or more delivery agent devices (e.g., 112A and112B). The delivery agent device 112A and 112B includes one or morecomputers, smartphones, tablets, wearable technology, computing devices,or systems of a type well known in the art, such as a mainframecomputer, workstation, personal computer, laptop computer, hand-heldcomputer, cellular telephone, MP3 player, or personal digital assistant.The delivery agent device 112A and 112B may be configured to operate orinteract with the delivery agent application 110A, and include suchsoftware, hardware, and componentry as would occur to one of skill inthe art, such as, for example, one or more microprocessors, memorysystems, input/output devices, device controllers, and the like. Thedelivery agent device 112A and 112B may include one or more data entrymeans (not shown in FIG. 1) operable by delivery agents associated withdelivery agent applications 110A and 110B, respectively, of the deliveryagent device 112A and 112B, for data entry, such as, for example, voiceor audio control, a pointing device (such as a mouse), keyboard,touchscreen, microphone, voice recognition, and/or other data entrymeans known in the art. The delivery agent device 112A and 112B may alsoinclude a display means which may comprise various types of knowndisplays such as liquid crystal diode displays, light emitting diodedisplay, and the like upon which information may be displayed in amanner perceptible to the users. It will be appreciated that deliveryagent device 112A and 112B include may further include such software,hardware, and componentry as would occur to one of skill in the art, tooperably perform the functions allocated to the delivery agent device112A and 112B in accordance with the present disclosure. It will befurther appreciated that the delivery agent device 112A and 112B may beconfigured to route communications (i.e., transmit information) to andgenerally interact with a web service and/or application programminginterface infrastructure housed on server 106 over communication network104. The delivery agent device 112A and 112B may include a web browser,mobile application, socket or tunnel, or other network connectedsoftware such that communication with the web services infrastructure onserver 106 is possible over the communications network 104.

One embodiment of system 100 includes a customer order placementapplication 102 for use by a customer for placing a food order, a server106 configured to communicate with the customer order placementapplication 102 over communication network 104, the order being receivedat the server 106 over communication network 104, the server 106 storinginformation in a database, or in order queue 106A. The food order isfurther processed and set for preparation by a kitchen managerapplication 108A, and assigned to a delivery agent associated with adelivery agent application 110A for delivery to the customer.

Referring now to FIG. 2A, there is shown a method for coordinating foodpreparation and delivery, generally indicated at 200. The method 200includes receiving an order at step 202; estimating an order completiontime, and requesting a delivery agent at step 204; queueing the order atstep 206; receiving a delivery agent acknowledgement at step 208;dispatching the order at step 210; receiving order preparationcompletion confirmation at step 212, and assigning a delivery agent atstep 214.

In at least one embodiment of the present disclosure, the method 200includes receiving an order, at step 202. An order for food items may becreated by a customer using customer order placement application 102 andtransmitted to server 106 via communication network 104. For example, acustomer may add food items to an online shopping cart on an online foodordering interface (i.e., the customer order placement application 102),whereby the system 100 creates (or updates) an order to add the items tothe order. Continuing with this example, order confirmation happens atcheckout time when the customer pays for the order.

In at least one embodiment of the present disclosure, each orderincludes a delivery address. The delivery address may be obtained viainput from the customer, or via an automated pull of the customer orderplacement application 102's GPS coordinates. It will be appreciated thatthe customer may be able to set delivery locations, preferences (e.g.work location, home location), and provide delivery instructions, tohelp simplify and facilitate a faster ordering process. In at least oneembodiment of the present disclosure, the GPS coordinates may becompared to a predetermined delivery range to determine whether to allowthe customer to place an order or to alert the customer that they arenot currently in the delivery range and need to establish a deliveryaddress within the delivery range prior to completing an order. In atleast one embodiment of the present disclosure, each order includes arequested delivery time for delivery to the delivery address.

In at least one embodiment of the present disclosure, the system 100 isconfigured to transmit an order confirmation communication from theserver 106 to the customer order placement application 102 via thecommunication network 104. System 100 may be configured to transmitadditional information via the communication network 104 such as orderstatus, delays, delivery agent location, delivery agent arrival,customer satisfaction and feedback requests, and the like.

In at least one embodiment, the customer may track the progress of theorder via customer order placement application 102. For example, thecustomer order placement application 102 may receive notifications fromthe server 106 via the communication network 104, or the customer orderplacement application 102 may be able to poll (or otherwise pullinformation) from the server 106 via the communication network 104. Itwill be further appreciated that the system 100 allows for a customer totrack delivery in real-time, including the location of the deliveryagent associated with delivery agent application 110A, during the courseof delivery of the order. It will be appreciated that the tracking mayoccur via map, text messages and the like, phone calls, appnotifications, or other means well known to one having ordinary skill inthe art. For example, using the customer order placement application102, a customer may be able to view the delivery agent's 112 locationinformation on a map that updates with real-time or near-real-timelocation information. It will be appreciated that this enables thecustomer to be ready for the delivery of the customer's order.

In at least one embodiment of the present disclosure, the method 200includes estimating an order completion time, and requesting a deliveryagent, at step 204. For each order received, the system 100 calculatesthe expected cook time for each item of the order. For example, if anorder has five different items, the system 100 is configured tocalculate the amount of time it will take to cook all five items, eitherin sequence or in parallel, and to estimate the time to completion forall of the items in the order.

To further illustrate an exemplary embodiment of the method 200, thereis shown a flowchart 300 in FIG. 3. Flowchart 300 includes a pluralityof orders 302 (i.e., order 1, order 2, order 3, order 4, order 5, andorder 6); a plurality of order items 304 for the each of the pluralityof orders 302, a time line 306 comprising seventeen time periods, a listof delivery agents 308 (i.e. delivery agent 1, delivery agent 2,delivery agent 3, delivery agent 4, and delivery agent 5), and a countof outstanding delivery agent requests 310. Each of the plurality oforders 302 includes one or more order items 304. For example, order 1includes five items; order 2 includes five items; order 3 includes threeitems; order 4 includes four items; order 5 includes one item; and order6 includes two items. Continuing with order 1 as an example, the system100 is configured to calculate the amount of time it will take to cookall five items in order 1. As shown in flowchart 300, order 1, item 5requires the longest cook time (eight time periods) amongst all theitems in order 1. Similarly, order 1, item 2 requires the shortest cooktime (two time periods). When the each of the five items in order 1 arecooked in parallel, the system 100 determines that the cook time will beapproximately eight time periods (because of the longest duration ofitem 5). In one embodiment, the kitchen manager application 108A makesthese determinations and then calculates the wait times beforedispatching the item to the appropriate food station for each item inthe order. The wait times are calculated such that all items in theorder will complete cooking at the same time, such that the order isready for pick up by a delivery agent when all items have been recentlycompleted. In at least one embodiment of the present disclosure, therequested delivery time is also used to determine wait times.

In at least one embodiment of the present disclosure, step 204 furtherincludes requesting a delivery agent. The system 100 is configured toissue a request for a delivery agent to delivery agent application 110Aby routing an activation communication to delivery agent application110A over the communication network 104. For example, a plurality ofdelivery agents may be available to perform a delivery of an order. Thesystem 100 may issue an activation communication to a delivery agent inthe form of a ‘push’ notification over the communication network 104 tothe delivery agent application 110A (e.g., accessed via the deliveryagent device 112A) associated with a delivery agent that is nearest tothe kitchen facility, as determined by the delivery agent's (or moreparticularly the delivery agent application's 110A and/or device's 112A)location relative to the kitchen facility. In at least one embodiment ofthe present disclosure, the system 100 is configured to ‘push’notifications to alternative delivery agents' applications 110A (if thefirst selected delivery agent does not respond with an availabilitycommunication), the alternative delivery agents selected by increasingdistance of the delivery agent from the kitchen facility. For example,the second closest delivery agent might get the second ‘push’notification routed to the second closest delivery agent's application110 over the communication network 104, and if the second closestdelivery agent does not respond with an availability communication, thesystem 100 issues a third ‘push’ notification routed to the thirdclosest delivery agent's application 110 over the communication network104. In at least one embodiment of the present disclosure, the system100 may issue a blanket notification routed over the communicationnetwork 104 to the delivery agent applications 110A of all deliveryagents that are available to perform deliveries, as further disclosedherein.

In at least one embodiment of the present disclosure, the delivery agentapplication 110A may only receive a ‘push’ notification routed over thecommunication network 104 if the delivery agent associated with deliveryagent application 110A meets certain criteria, as determined by thesystem 100. For example, a delivery agent 110A may be suited towards aparticular type of delivery, such as, for example, a delivery of a largeorder, or a delivery to a distant destination. In at least oneembodiment of the present disclosure, the system 100 may seek deliveryagents to fulfill delivery demands based on an individual delivery agenttype, delivery agent attributes, or the order attributes. For example,the system 100 may comprise a plurality of delivery agents such as, adriver with a car, or a bicyclist. A delivery order ready to bedelivered may comprise a quantity of items that a bicyclist may not beable to deliver. For example, if a delivery order comprises ten pizzas,and if delivery agent application 110A has an attribute of a bicyclemode of transportation, the system 100 evaluates the delivery agentapplication's 110A suitability to handle, transport, and deliver aparticular order, for example ten pizzas. The system 100 may determinethat delivery agent associated with delivery agent application 110A isnot ideal to deliver ten pizzas, and the system 100 will select adelivery agent with, for example a car as the delivery agent attributeindicated for the delivery agent application 110A. Conversely, if thedelivery order comprises one sandwich, and the delivery location is twoblocks from the kitchen facility, the system 100 may select a bicycle asthe delivery agent attribute indicated for the particular delivery agentapplication 110A, given that a bicyclist may be more efficient than acar driver, or it may be that the car driver is slotted to deliver alarge order that the bicyclist cannot deliver. It will be appreciatedthat the system 100 is configured to evaluate order attributesindicated, and to pick a delivery agent associated with a delivery agentapplication 110A that has transportation attributes that can service theorder attribute. In another example, if the order contains ice cream,the order attribute may indicate that the order must be transported in achilled environment. In such a case, the system 100 may be configured toprioritize a delivery agent application 110A that has a transportationattribute associated with it that includes a cooled vehicle, as opposedto a pedestrian, to ensure successful delivery of the ice cream order.In such embodiments, the communications router of the system 100 willroute communications over the communication network 104, illustrativelyin the form of ‘push’ notifications to delivery agent applications 110Aassociated with delivery agents having attributes meeting the requisiteorder attributes. In one embodiment of the present disclosure, adelivery agent logs in or otherwise indicates available status throughthe delivery agent application 110A and selects a transportationattribute that represents to delivery agent's mode of transportation fordeliveries during that session for which the delivery agent wishes toremain available for deliveries.

In at least one embodiment of the present disclosure, the system 100 maybe configured to have a priority or preference towards delivery agentsthat have placed their delivery agent application in an ‘available’state and are physically close to the kitchen facility, such that thedelivery agent can reach the kitchen facility promptly.

In at least one embodiment of the present disclosure, the system 100 mayinclude a plurality of kitchens having kitchen manager applications(e.g. kitchen manager application 108A and kitchen manager application108B). The system 100 may further select a delivery agent associatedwith a delivery agent application 110A based on the delivery agentapplication's 110A (or the delivery agent device's 112A) locationrelative (or calculated or estimated time to travel) to each of theplurality of kitchens. For example, delivery agent application 110A mayindicate a position farthest away from the kitchen facility associatedwith kitchen manager application 108A, but may be closer to anotherkitchen facility associated with kitchen manager application 108B, andany orders received by system 100 and routed (such as through acommunication router over the communication network 104) to kitchenmanager application 108B may now be delivered by the associated deliveryagent.

In at least one embodiment of the present disclosure, if the order isnot scheduled, the system 100 attempts to determine if the number ofactive delivery agents is less than the number of open orders without adelivery agent assigned (or that the number of active delivery agentshas dropped below an established threshold, whether on a percentage orfractional basis, whole number difference, or other metric which wouldbe known to one of ordinary skill in the art). If so, the system 100 maybe configured to send a ‘push’ notification, such as through acommunication router over the communication network 104, to one or moredelivery agent applications 110A to obtain additional delivery agentswho have indicated ‘available’ status, as further disclosed herein. A‘push’ notification is indicative that an additional delivery agent isrequired by the system 100. In some embodiments, the number of deliveryagents selected to receive ‘push’ notifications is selected at least inpart based on the pickup time and/or the requested delivery time.

In at least one embodiment of the present disclosure, the system 100 mayattribute order characteristics to each order. For example, an ordercomprising more than ten food items may be considered a large order; oran order expected to weigh more than a certain threshold limit (e.g., 15lbs) may be considered a large order. In at least one embodiment ofsystem 100, particular food items may have attribute informationassociated therewith such as weight, temperature (such as hot, cold, orneutral), and spillability included. Additionally, order attributes mayalso comprise any information about the specialized nature of the fooditem or the order, such as for example, whether the order containsliquids (e.g. beverages), or whether the order has any temperatureconstraints (e.g. if the order includes ice cream, a temperatureconstraint may be in place to ensure the ice cream does not melt beforedelivery). The system 100 may be configured to issue instructions forpackaging or delivery for mixed orders (such as packaging hot items withonly other hot or hot and neutral items, or delivering food items havingan easy-to-spill attribute in special packaging or transportationinstructions provided to the delivery agent).

In at least one embodiment of the present disclosure, the method 200further includes step 206, of queuing an order. The system 100 may queuean order in order queue 106A. For example, an order may be placed in theorder queue 106A so that it may be held until the system 100 receivesconfirmation from delivery agent associated with delivery agentapplication 110A, such as through a communication router over thecommunication network 104, that the delivery agent associated withdelivery agent application 110A has accepted the ‘push’ notificationfrom the system 100, and is on the way to the kitchen facility forpickup of the order (as further disclosed at step 208). It will beappreciated that every order may be queued in order queue 106A and maynot be dispatched to be cooked until the system 100 receivesconfirmation that a delivery agent will be (or is) available to pick upand deliver the order, as soon as possible, upon cooking completion ofthe order. It will be further appreciated that an order may stay in theorder queue 106A so long as a delivery agent associated with deliveryagent application 110A is not available (See FIG. 3—order 6 stays queuedfrom time period 8 until time period 16 while waiting for anacknowledgment from Delivery Agent 3); or the order may be almostinstantaneously dispatched for cooking upon the system 100 receivingalmost instantaneous confirmation from delivery agent 110A (See FIG.3—order 5 is immediately dispatched after being received upon receivingthe acknowledgement from Delivery Agent 4).

In at least one embodiment of the present disclosure, the method 200includes receiving delivery agent acknowledgement, at step 208. Asdisclosed above, the system 100 issues a ‘push’ notification, through acommunication router over the communication network 104, to allavailable delivery agent applications 110A to request the availabilityof a delivery agent to fulfill the delivery requirements of the order.In at least one embodiment of the present disclosure, a delivery agentassociated with delivery agent application 110A can transition betweenvarious statuses as further disclosed herein. It will be appreciatedthat when the system 100 issues a ‘push’ notification requesting adelivery agent associated with delivery agent application 110A, thefirst ‘available’ delivery agent may operate delivery agent device 112Ato accept the request from the system 100 via the delivery agentapplication 110A, and then transition to the ‘en-route’ status, wherebythe delivery agent associated with delivery agent application 110A isthen en-route to the kitchen facility.

In at least one embodiment of the present disclosure, the method 200further includes the step of dispatching the order, at step 210. In atleast one embodiment of the present disclosure, the system 100 operatesto dispatch the order (i.e. each of the items comprising an order) fromthe order queue 106A of server 106 to the kitchen manager application108A, such as through the communication router of system 100 over thecommunication network 104. In at least one embodiment of the presentdisclosure, the system 100 operates to compute food preparation times,in order to ensure that the each food item is completed at or about thesame time as each other food item in the order. At least one embodimentthe system 100 operates to compute food preparation times, in order toensure that the each food item is completed at or about the same time aswhen the delivery agent associated with delivery agent application 110Aarrives at the kitchen to pick up the order for immediate delivery tothe customer. At least one embodiment of the system 100 operates tocompute food preparation times, in order to ensure that the each fooditem is completed at or about the same time under circumstances when oneor more food station has a backlog, delays, or some other sensed orreported issues resulting in a delay.

In at least one embodiment of the present disclosure, the system 100 mayassign a ‘wait’ time for a particular item in the food order, in orderto delay beginning the preparation of the item such that it is completedat the same time as another item that may have taken a longer time tocook (i.e. wait time=delivery agent associated with delivery agentapplication 110A's estimated time of arrival (ETA)−cook time). Thecustomer's requested delivery time may also be taken into account whencomputing the wait time so that the food order is completed at such atime that it can be delivered to the customer at the requested deliverytime.

For example, if an order includes a Cuban sandwich that takes tenminutes to prepare, and a hamburger that takes four minutes to prepare,and the delivery agent associated with delivery agent application 110Awill not be available until fifteen minutes from the time the order wasplaced, the system 100 is operably configured to dispatch food itemorders to the food station manager application, such as through acommunication router over the communication network 104, so that theitems are ready exactly when, or as close to when, the delivery agentassociated with delivery agent application 110A is ready to pick up theorder for delivery. In the example, the system 100 will first queue theCuban sandwich to begin cooking in approximately five minutes (i.e.delivery agent's ETA (15 minutes)−Cuban sandwich cook time (10minutes)=wait time (5 minutes)); similarly, the system 100 will queuethe hamburger to begin cooking in approximately 11 minutes (i.e.delivery agent's ETA (15 minutes)−hamburger cook time (4 minutes)=11minutes). After queued, the system 100 will display the items to beprepared at the appropriate food station manager application. It will beappreciated that the system 100 will queue the food items such that allthe food items are completed at or near the same time, and at such timeas when the delivery agent associated with delivery agent application110A is ready to take the order to be delivered.

In at least one embodiment of the present disclosure as shown inflowchart 300, order 1 is placed at time period 1, and contains fiveitems. At time period 1, the order is received at server 106 over thecommunication network 104. At time period 2, order 1 is queued in orderqueue 106A, and the system 100 issues a ‘push’ notification through acommunication router over communication network 104 to delivery agentapplication 110A. At time period 3, the delivery agent associated withdelivery agent application 110A (as shown at 308), ‘acknowledges’ the‘push’ notification through a communication router over communicationnetwork 104, indicative that the delivery agent associated with deliveryagent application 110A is en-route to the kitchen facility in order tofulfill delivery of an order request. Continuing with this example, attime period 3, the server 106 ‘releases’ the order from the order queue106A, while determining the ‘wait’ time for each item. Order 1, item 1,takes 6 time periods to cook; order 1, item 2, takes two time periods tocook; order 1, item 3, takes five time periods to cook; order 1, item 4,takes six time periods to cook; and order 1, item 5 takes eight timeperiods to cook. In at least one embodiment of the present disclosure,the system 100 determines the estimated arrival time of the deliveryagent 1 based on the distance (as determined by the location of deliveryagent 1), from the kitchen facility. Continuing with the above example,if it is estimated that delivery agent 1 is expected to arrive at timeperiod 12, the system 100 operates to calculate wait times for eachorder item based on their predetermined preparation times. In thepresent example, order 1, item 1, will ‘wait’ to be dispatched for twotime periods (i.e. time period 4-5); order 1, item 2, will ‘wait’ to bedispatched for six time periods (i.e. time periods 4-9); order 1, item3, will ‘wait’ to be dispatched for three time periods (i.e. time period4-6); order 1, item 4, will ‘wait’ to be dispatched for two time periods(i.e. time periods 4-5); and order 1, item 5 will ‘wait’ to bedispatched for zero time periods. Therefore, the each of the items inorder 1 will be completed at or about the same time as when a deliveryagent will be available to take possession of the order and engage inthe delivery process (i.e. at time period 12).

In at least one embodiment of the present disclosure, the system 100 maybe pre-populated with estimated cooking times for all food itemscontemplated to be cooked in the kitchen facility at the applicable foodstations. The cook times are used to establish wait times and/or starttimes for food items in a particular order, and instructions are sent,whether through the communication network 104 using the communicationrouter or through some other means known to one of ordinary skill in theart, to the food station manager applications to provide instructions tothe workers. In some embodiments, the instructions are sent to thekitchen manager application 108A which then sends instructions to theappropriate food station manager applications for item preparation). Itwill be further appreciated that the system 100 may keep track and‘learn’ of cook times for any items that are cooked at the applicablefood stations, and further update and modify the estimated cook timesfor the each of the food items, based on such historical data. In atleast one embodiment of the present disclosure, the system 100 may alsotrack order item cooking time to continuously update the expectedcooking time for each food, and/or for other items in a given order(whether real time adjustment for particular orders and other ordercalculations, or for historical aggregation and analytics). For example,if a hamburger was originally determined to be cooked in four minutes,but actual cooking time repeatedly indicates that it takes five minutesto prepare, the system 100 may be configured to update the expectedcooking time for the hamburger as appropriate. Alternatively, the system100 may present information (e.g. a list of observed differentials ofactual cook times versus expected system cook times), to an expo orother management personnel, to allow a determination of whether toadjust the cook time in the system 100, improve training for the cookresponsible for the food item, improve kitchen work flow, or take someother appropriate action to resolve the disparity between expectedsystem cook times and actual cook times. It will be appreciated that thesystem 100 is capable of tracking food item cooking time based on wheneach food station starts cooking the food item, and when it ends cookingthe food item, as input to the food station manager application by thecook manning the food station.

In at least one embodiment of the present disclosure, the system 100 maymodify ‘wait’ times in order to account for changes in the estimatedarrival time of the delivery agent associated with delivery agentapplication 110A. Continuing with the above example, order 1 wasinitially released form the order queue 106A based on theacknowledgement received from delivery agent 1 through the communicationrouter over the communication network 104. Whereas delivery agent 1 wasoriginally scheduled to arrive at the kitchen facility at time period12, delivery agent 1 actually arrived at kitchen facility at time period10. However, in the present example, the system 100 did not have tomodify the preparation schedule of order 1 given that delivery agent 3was expected to arrive at time period 12. It will be appreciated that adelivery agent is not “tied” to an order, and that a delivery agent isonly selected in at least one embodiment at the moment the order iscompleted and ready to be handed to a delivery agent for delivery. Itwill be further appreciated that by not tying a delivery agent to aparticular order, the system 100 is allowed to process orders on a firstcome, first served basis, while at the same time ensuring that the firstdriver that is immediately available upon the completion of the cookingof the order is the delivery agent to handle the order, thereby ensuringthe quickest possible time from the time an order is cooked, to the timeit is delivered (i.e. the food order is not ‘waiting’ to be delivered,and is immediately dispatched for delivery after being cooked/prepared).

In at least one embodiment of the present disclosure, the method 200further includes receiving at the order queue 106A, from the foodstation manager application, through a communication router over thecommunication network 104, a food item started confirmation for eachitem in an order to establish when the food item commenced cooking orpreparation.

In at least one embodiment of the present disclosure, the method 200further includes receiving an order prepared confirmation, at step 212.For each item that is dispatched to a food station manager applicationin the kitchen facility, the food station manager application isconfigured to signal (or sense or receive an input from a cookregarding) the completion of the preparation of the item. System 100receives this information over the communication network 104 and may usethe information regarding item start time and item finish time to trackactual item preparation times versus predetermined item preparationtimes. In at least one embodiment of the present disclosure, if an ordercomprises a plurality of individual food items, each of the food itemsare combined for delivery (for example, by a workforce member or therunner station). When the order is completely “assembled,” a member ofthe workforce transfers the food item to a delivery agent, as furtherdisclosed herein.

In at least one embodiment of the present disclosure, the method 200further includes assigning a delivery agent associated with deliveryagent application 110A, at step 214. When an order is completelyassembled, a workforce member will provide the order to a delivery agentassociated with delivery agent application 110A who is in the vicinityof the kitchen facility (e.g. in the parking lot by the kitchenfacility; or at a pre-assigned location near the kitchen facility; or ina line along with other delivery agents). For example, a workforcemember responsible for assembling the order may also select the firstdelivery agent in a line of delivery agents. In some embodiments, theserver 106 assigns the order to one of the delivery agents who iscalculated to arrive at the pick-up location at or before the orderready time. In at least one embodiment of the present disclosure, aworkforce member may operate a delivery screen at a expo station andselect a dropdown of “arrived” delivery agents and provide a selecteddelivery agent with the order. Upon getting the food, the delivery agent110A will transition to a new state to indicate that he/she is in theprocess of delivering the order, and start driving to the deliverydestination.

Referring now to FIG. 2B, there is shown an exemplary embodiment, at250, of the method 200, according to one embodiment of the presentdisclosure. In the exemplary embodiment 250, the customer places anorder and the order is received at the server 106 through acommunication router over the communication network 104, as shown at252. The server 106 estimates an order completion time and requests adelivery agent by issuing a ‘push’ notification to a delivery agentapplication 110A through a communication router over the communicationnetwork 104, at 254. The server 106 also adds the order to order queue106A, at 256. The delivery agent associated with delivery agentapplication 110A receives the ‘push’ notification and acknowledges thesame (also through a communication router over the communication network104) at 258. At 260, the server 106 releases the order from the orderqueue 106A, and dispatches the order to the appropriate food stationmanager applications through a communication router over thecommunication network 104. As shown in exemplary embodiment 250, theorder has three order items—order item #1, order item #2, and order item#3. In the exemplary embodiment 250, the server 106 determines theestimated arrival time of the delivery agent associated with deliveryagent application 110A, based on when the delivery agent acknowledgedthe ‘push’ notification (i.e. at 258), and how far away the deliveryagent is from the kitchen facility. The delivery agent associated withdelivery agent application 110A is expected to begin travelling to thekitchen facility at 262, and arrive at the kitchen facility at 264. Inthe exemplary embodiment 250, the server 106 dispatches order item #1first, at 260A; order item #3 is delayed and dispatched at 260C; andorder item #2 is delayed and dispatched last at 260B. It will beappreciated that the each of the order items are dispatched such asthrough the communication router of the system 100 over thecommunication network 104, and are dispatched at particular times sothat they all are completed at about the same time (i.e. at 264). At264, all the order items are cooked/prepared and are ready for delivery,and the delivery agent associated with delivery agent application 110Aarrives at the same time, or substantially around the same time. Thedelivery agent takes possession of the order at 264, and then proceedsto travel to the customer to deliver the order at 268. It will beappreciated that dispatching, such as using the communication router andcommunications network 104 of the system 100, each of the order items atdifferent times ensures that each of the items are completed at thesame. It will be further appreciated that by completing each item at thesame time, the entire order may be delivered quickly and the items arenot left ‘sitting’ and thus be diminished in quality upon delivery.

Referring now to FIG. 4, there is shown a method for coordinating foodpreparation and delivery, generally indicated at 400. In at least oneembodiment of the present disclosure, the method 400 includes a deliveryagent logging in using delivery agent application 110A at step 402; thedelivery agent changing status using delivery agent application 110A atstep 404; the delivery agent using delivery agent application 110A toaccept a request at step 406; the delivery agent associated withdelivery agent application 110A arriving at the kitchen facilityassociated with kitchen manager application 108A at step 408; thedelivery agent receiving the order at the kitchen facility at step 410;the delivery agent delivering the order and confirming the order wasdelivered using delivery agent application 110A at step 414; and thedelivery agent using delivery agent application 110A to update thedelivery agent's status at step 416 (for example to remain active oravailable, or to deactivate).

In at least one embodiment of the present disclosure, the method 400includes the delivery agent logging in using delivery agent application110A at step 402. The delivery agent using delivery agent application110A may be able to access the system 100 using login credentials, orfederated access from other third party applications (e.g Facebook®),operably connected to the system 100 via the Internet. In at least oneembodiment of the present disclosure, the delivery agent associated withdelivery agent application 110A may change their status (e.g.unavailable (i.e. the delivery agent is not available to perform anydeliveries); or active/available (i.e. the delivery agent is availableto fulfill a delivery)).

In at least one embodiment of the present disclosure, step 402 mayfurther include the delivery agent using delivery agent application 110A(via the delivery agent device 112A) to transmit information to thesystem 100 through a communication router over the communication network104. In at least one embodiment of the present disclosure, the deliveryagent information may include the delivery agent's state selected by thedelivery agent using delivery agent application 110A (e.g. available,not available, in transit, on task, at kitchen, etc.) or assigned by thesystem (such as assigning status of not available when a delivery agentfails to indicate s/he wishes to remain active after a set time haselapsed), delivery agent application 110A attribute (e.g. car, truck,bicycle, refrigerated, etc.), or route information (such as heavytraffic between delivery agent associated with delivery agentapplication 110A's current location and kitchen facility), and deliveryagent application's 110A location (e.g. GPS coordinates). In otherembodiments, the server 106 obtains the delivery agent's location fromthe delivery agent device 112A or from another device maintained at thedelivery agent's location. In at least one embodiment of the presentdisclosure, the system 100 will send (such as through a communicationrouter over the communication network 104) to the delivery agentapplication 110A pickup location information such as, an image, GPScoordinates, address, or other identifiable location information, aswill be appreciated by one having ordinary skill in the art. The system100 may further send (such as through a communication router over thecommunication network 104) a notification to an ‘available’ or ‘active’delivery agent application 110A about a delivery job that the deliveryagent associated with delivery agent application 110A can undertake.

In at least one embodiment of the present disclosure, the method 400includes the delivery agent changing status using delivery agentapplication 110A, at step 404. The delivery agent using delivery agentapplication 110A can transition between various status states. Forexample, unavailable means the delivery agent is not available toperform any deliveries; and ‘active/available’ means the delivery agent110A is available to fulfill a delivery. In at least one embodiment thestatus states can include, for example: unavailable (i.e. the deliveryagent associated with delivery agent application 110A is not availableto perform any deliveries); active/available (i.e. the delivery agentassociated with delivery agent application 110A is available to fulfilla delivery); busy (i.e. the delivery agent 110A is engaged in thefulfillment of a delivery); and en-route (i.e. the delivery agent 110Ais en-route to the kitchen facility). For example, an ‘active/available’state means the delivery agent 110A has opened a delivery agentapplication 110A on the delivery agent device 112A and indicated thathe/she is willing to “start working” but that he/she has not yet beendispatched to the kitchen facility. The change in status is indicativethat the delivery agent associated with delivery agent application 110Awants to receive ‘push’ notifications to begin working. ‘En-route’ meansthat the delivery agent associated with delivery agent application 110Ais on the way to the kitchen facility ready to pick up an order whenhe/she gets there. The delivery agent associated with delivery agentapplication 110A may enter into this state by receiving a ‘push’notification through a communication router over the communicationnetwork 104 while in ‘available’ state (or by opting to remain activeafter delivering an order, as further disclosed herein). ‘Busy’ meansthe delivery agent associated with delivery agent application 110A hasan order, has picked up the order from the kitchen facility, and isen-route to deliver the order to the customer. ‘Unavailable’ means thedelivery agent associated with delivery agent application 110A isneither working nor wanting to receive ‘push’ notifications.

In at least one embodiment of the present disclosure, the method 400includes the delivery agent using delivery agent application 110A toaccept a request, at step 406. A delivery agent application 110A mayreceive a ‘push’ notification through a communication router over thecommunication network 104 if the delivery agent using the delivery agentapplication 110A is in the ‘available’ state, and the system 100requires a delivery agent to fulfill delivery of an order. In at leastone embodiment of the present disclosure, the delivery agent may use thedelivery agent application 110A to accept such a notification within acertain pre-defined time threshold, whereby if the time threshold isexceeded, the delivery agent associated with delivery agent application110A is no longer “offered” the ability to accept the ‘push’notification.

In at least one embodiment of the present disclosure, the method 400includes detecting or otherwise receiving indication that the deliveryagent associated with delivery agent application 110A arrived at thekitchen facility, at step 408. After accepting the ‘push’ notificationusing delivery agent application 110A, the delivery agent 110Atransitions to the “en-route” state, indicative that the delivery agentassociated with delivery agent application 110A is en-route to thekitchen facility. During the period of travel, the delivery agent usingdelivery agent application 110A may exchange information with the system100 through a communication router over the communication network 104,such as, for example, the delivery agent and the associated deliveryagent application's 110A location, the speed of travel, and the like.Upon arrival at the kitchen facility, the delivery agent application110A may indicate the delivery agent's arrival by transitioning to the“arrived” state, indicative that the delivery agent is on the kitchenfacility premises. It will be appreciated that the system 100 mayautomatically transition the delivery agent application 110A to the“arrived” state based on the location of the delivery agent application110A, or based on the delivery agent using delivery agent application110A such as through operation of the delivery agent device 112A, toindicate the same.

In at least one embodiment of the present disclosure, the method 400includes the delivery agent associated with delivery agent application110A receiving the order, at step 410. In at least one embodiment, aworkforce member in the kitchen facility may be instructed to and beresponsible for handing the order to the delivery agent. It will beappreciated that in at least one embodiment, there is minimal effort onthe part of the delivery agent to gain possession of the order from thekitchen facility. For example, if the delivery agent associated withdelivery agent application 110A is associated with a car, the deliveryagent may not have to exit his car; rather, a workforce member of thekitchen facility will approach the car and hand the order into the carto the delivery agent. It will be further appreciated that this reducesthe overall delivery time of the order given that the delivery agentdoes not have to be concerned with having the right order, or ensuringthe completeness of an order comprising many individual items. This“grab-and-go” approach ensures that the delivery agent is engaged solelyin the pick-up and delivery process. As discussed hereinabove, in someembodiments delivery agents are not assigned to orders until theyactually receive the order. So that the system 100 knows which deliveryagent application 110A has been tasked with delivering the order, insome embodiments a code is printed on the order or on a ticket or thelike associated with the order. After receiving the order, the deliveryagent may enter the code into the delivery agent application 110A to letthe system 100 know that this delivery agent has picked up the order fordelivery. The system 100 can thereafter send delivery instructionsthrough a communication router over the communication network 104 to thedelivery agent's delivery agent application 110A and track the progressof the delivery to the customer.

In at least one embodiment of the present disclosure, the method 400includes the delivery agent associated with delivery agent application110A receiving delivery instructions at step 412. As discussedhereinabove, concurrent to, or around the same time as, when thedelivery agent associated with delivery agent application 110A receivesthe order at step 410, the delivery agent application 110A also receivesdelivery instructions. In at least one embodiment of the presentdisclosure, the delivery agent application 110A may be provided withroutes, special handling instructions, entry and access directions (e.g.security code to a customer's building), and the like. It will beappreciated that the system 100 may automatically transmit, such asthrough a communication router over a communication network, suchinformation to the delivery agent application 110A (or to the deliveryagent device 112A), or such information may be manually entered by adelivery agent into the delivery agent device 112A.

In at least one embodiment of the present disclosure, the method 400includes the delivery agent associated with delivery agent application110A delivering the order, at step 414. The delivery agent associatedwith delivery agent application 110A proceeds to the customer's desireddestination as per instructions. During the delivery agent's delivery,the delivery agent's location may be tracked to provide the customerwith insight into the delivery agent's progress, and the estimatedarrival time to customer's location. In at least one embodiment of thepresent disclosure, the system 100 may generate pre-populated texts forthe delivery agent to send, such as through a communication router overthe communication network 104 of system 100 or from the delivery agentdevice 112A. The messages may include information such as orderinformation, delivery agent information (such as type of car, bike, hat,or attire, for example), estimated time of arrival, and locationinformation, to name a few non-limiting examples.

In at least one embodiment of the present disclosure, the system 100allows for a delivery agent associated with delivery agent application110A to obtain a daily delivery agent summary, which includesinformation such as, for example, date, day of the week, base monies,tips, total amount earned, recent jobs (including duration of delivery),number of items, pay rate, feedback, rating, address, and location.

In at least one embodiment of the present disclosure, the method 400includes the delivery agent updating status through delivery agentapplication 110A at step 416. When the food order is handed off to thecustomer, the delivery agent associated with delivery agent application110A indicates that the order delivery has been completed (e.g. via theoperation of the delivery agent device 112A) and is given the option tokeep working or stop working. If the delivery agent associated withdelivery agent application 110A elects to keep working, the deliveryagent associated with delivery agent application 110A will automaticallytransition to the ‘active’ state and is given priority for anyadditional orders that the system 100 receives. If the delivery agentassociated with delivery agent application 110A elects to stop work, thedelivery agent associated with delivery agent application 110A willenter the ‘unavailable’ state. It will be appreciated that the method400 allows the delivery agent associated with delivery agent application110A to have control over his/her work schedule, and also givespriorities to delivery agents who remain and continue working. It willbe further appreciated that the method 400 does not have toover-subscribe the number of delivery agents to activate, which is theresult when all delivery agents are treated with equal priority. It willalso be further appreciated that the method 400 ensures delivery agentswho are already “working” will continue to receive delivery tasks,thereby providing additional assurances to delivery agents that they cancontinue earning money.

While the description above refers to particular embodiments of thepresent invention, it will be understood that many modifications may bemade without departing from the spirit thereof. The accompanyingconcepts are intended to cover such modifications as would fall withinthe true scope and spirit of the present invention. The presentlydisclosed embodiments are therefore to be considered in all respectsillustrative and not restrictive, the scope of the invention beingindicated by the appended concepts, rather than the foregoingdescription, and all changes which come within the meaning and range ofequivalency of the concepts are therefore intended to be embracedtherein.

For example, although the present invention has been described as usefulfor the food order, preparation and delivery industry, those of skill inthe art will readily understand and appreciate that the presentinvention has substantial use and provides many benefits in otherindustries as well. Some of those may include practicing the presentinvention to improve ordering, manufacture, and delivery efficiencies ofproducts and services such as general product manufacturing and/orassembly, e-commerce web store, or an on-demand taxi services company.In general, one having ordinary skill in the art would find the presentinvention useful in improving production, and delivery of on-demandproducts and services.

What is claimed is:
 1. A method for transmitting an instructioncommunication to a manager application from a server including acommunication router coupled to a communication network, for preparationand delivery of an order placed through a customer order placementapplication in communication with the server, the instructioncommunication being based upon information received from a deliveryagent application associated with each of a plurality of deliveryagents, the method comprising the steps of: a. receiving, at the server,an order communication from the customer order placement application,the order communication comprising an order for one or more items placedby a customer for delivery to a delivery destination; b. determining, bythe server, an estimated preparation time for each of the one or moreitems; c. receiving, at the server, an availability communication fromthe delivery agent application for a first one of the plurality ofdelivery agents, the availability communication comprising a deliveryagent status; d. receiving, at the server, a location communication fromat least one of: a device associated with the first one of the pluralityof delivery agents or the delivery agent application for the first oneof the plurality of delivery agents, the location communicationcomprising a location of the first one of the plurality of deliveryagents; e. determining, at the server, an estimated arrival time of thefirst one of the plurality of delivery agents at a pickup location basedat least in part on the location of the first one of the plurality ofdelivery agents; f. determining, at the server, a preparation start timefor each of the at least one items in the order such that preparation ofthe each of the at least one items is completed substantiallysimultaneously to each of the other at least one items, andsubstantially simultaneously with the estimated arrival time of thefirst one of the plurality of delivery agents at the pickup location;and g. transmitting, by the communication router, an instructioncommunication over the communication network to the manager applicationto begin preparation of each of the at least one items at thepreparation start time for each of the at least one item.
 2. The methodof claim 1, wherein the order comprises a food order, the one or moreitems comprises one or more food items, and the manager applicationcomprises a kitchen manager application.
 3. The method of claim 1,further comprising the step of (h) receiving from the managerapplication, at the server, a confirmation communication when each ofthe at least one items of the order has been prepared.
 4. The method ofclaim 1, further comprising the step of (h) assigning, by the server,the order to the first one of the plurality of delivery agents.
 5. Themethod of claim 1, wherein the preparation start time for each of theone or more items equals the estimated arrival time of the first one ofthe plurality of delivery agents at the pickup location, minus apredetermined preparation time for each of the one or more items.
 6. Amethod for transmitting an instruction communication to a managerapplication from a server including a communication router coupled to acommunication network, for preparation and delivery of an order placedthrough a customer order placement application in communication with theserver, the server further operative to communicate over thecommunications network with a plurality of delivery agent applicationsassociated with each of a plurality of delivery agents, the methodcomprising the steps of: a. receiving, at the server, an ordercommunication from the customer order placement application, the ordercommunication comprising an order for one or more items placed by acustomer for delivery to a delivery destination; b. communicating, bythe server, with at least one of: a device associated with a deliveryagent or one of the plurality of delivery agent applications associatedwith the delivery agent, and determining based on the communication thearrival time of the delivery agent at a pickup location; c. determining,at the server and based at least partially on the arrival time, apreparation start time for each of the one or more items; and d.transmitting, by the communication router over the communication networkto the manager application, an instruction communication to beginpreparation of each of the one or more items at the respectivepreparation start time for each of the one or more items so thatcompletion of preparation of each of the one or more items in the ordersubstantially coincides with the completion of preparation of each ofthe other items in the order and coincides with the arrival time of thedelivery agent.
 7. The method of claim 6, wherein the order comprises afood order, the one or more items comprises one or more food items, andthe manager application comprises a kitchen manager application.
 8. Themethod of claim 6 further comprising retrieving, by the server, datafrom a database regarding an estimated preparation time for each of theone or more items, wherein step (c) further comprises determining, atthe server and based at least partially on the arrival time and theestimated preparation time, a preparation start time for each of the oneor more items.
 9. The method of claim 6, further comprising the step of(e) receiving, at the server, an availability communication from thedelivery agent application associated with the delivery agent, theavailability communication comprising a delivery agent status.
 10. Themethod of claim 6, further comprising the step of (e) receiving from themanager application, at the server, a confirmation communication wheneach of the at least one items of the order has been prepared.
 11. Themethod of claim 10 further comprising the step of (f) storing data in adatabase regarding a measured preparation time for each of the one ormore items based upon the confirmation communication.
 12. The method ofclaim 11, further comprising the step of (g) using said data todetermine the estimated preparation time for each of the one or moreitems.
 13. The method of claim 6, further comprising the step of (e)assigning, by the server, the order to the delivery agent.
 14. Themethod of claim 6, wherein the preparation start time for each of theone or more items equals the arrival time of the delivery agent at thepickup location, minus a predetermined preparation time for each of theone or more items.
 15. The method of claim 6, wherein step (b) includesreceiving geolocation information from the delivery agent application.16. The method of claim 6, wherein step (b) includes determining routeinformation obtained from a database containing at least one routeinformation.
 17. The method of claim 6, wherein step (b) includesdetermining route information obtained from a database containing atleast one route information and at least one traffic congestioninformation.
 18. A computerized system coupled to a communicationnetwork, the system operative for assignment of an order to a deliveryagent, the system comprising: a. a customer order placement application;b. a server for receiving an order communication from the customer orderplacement application over the communication network, the ordercommunication comprising an order for one or more items placed by acustomer for delivery to a delivery destination; c. a database of iteminformation comprising the time for completion of each of the one ormore items; d. an order queue for establishing a preparation sequencefor each of the one or more items in each order based at least upon thetime for completion of each of the one or more items; and e. a pluralityof delivery agent applications operative to send a plurality ofcommunications over the communication network to the server, whereineach of the plurality of communications from the plurality of deliveryagent applications comprises information regarding the location of therespective one of the plurality of delivery agent applications; f.wherein the server identifies a delivery agent to pick up the order andan associated arrival time based at least in part on information in theplurality of communications and the order queue; g. wherein the serverdetermines, based at least in part on the arrival time, a preparationstart time for each of the one or more items; and h. wherein the serveris operative to transmit, by the communication router over thecommunication network to the manager application, an instructioncommunication to begin preparation of each of the one or more items atthe respective preparation start time for each of the one or more itemsso that completion of preparation of each of the one or more items inthe order substantially coincides with the completion of preparation ofeach of the other items in the order and coincides with the arrival timeof the delivery agent.
 19. The system of claim 18, wherein a firstdelivery agent application suitable to fulfill the delivery of the orderis selected from the plurality of delivery agent applications, based atleast in part on a pre-determined criterion.
 20. The system of claim 19,wherein the pre-determined criterion comprises a proximity of one of adevice associated with the delivery agent or the first delivery agentapplication to a location where the order is completed.
 21. The systemof claim 19, wherein the pre-determined criterion comprises a length oftime to travel a location of the first delivery agent application to alocation where the order is completed.
 22. The system of claim 19,wherein the pre-determined criterion comprises a transportation modeassociated with the first delivery agent application.
 23. The system ofclaim 19, wherein the server is operative to send an activationcommunication to the first delivery agent application and, if the firstdelivery agent application does not communicate an acceptance indicationto the server, a second delivery agent application suitable to fulfillthe delivery of the order is selected from the plurality of deliveryagent applications based at least on the pre-determined criterion. 24.The system of claim 23, wherein the second delivery agent applicationcommunicates an acceptance indication to the server, and the server isoperative to assign the order to the second delivery agent applicationfor delivery to the customer.
 25. The system of claim 18, wherein theorder comprises a food order, the one or more items comprises one ormore food items, and the manager application comprises a kitchen managerapplication.
 26. The system of claim 18, wherein the server determines,based at least in part on the arrival time and the time for completionof each of the one or more items, a preparation start time for each ofthe one or more items.
 27. The system of claim 18, wherein each of theplurality of delivery agent applications is configured to transmit tothe server over the communication network, an availabilitycommunication, the availability communication comprising a deliveryagent status.
 28. The system of claim 18, wherein the managerapplication is configured to transmit to the server over thecommunication network, a confirmation communication when each of the atleast one items of the order has been prepared.
 29. The system of claim28, wherein the server is configured to store data in a databaseregarding a measured preparation time for each of the one or more itemsbased upon the confirmation communication.
 30. The system of claim 29,wherein the server is configured to use said data to determine theestimated preparation time for each of the one or more items.